KVM の仮想ブリッジの IP アドレスはホストへの SSH 接続に使えるのか試してみた

KVM の仮想ブリッジの IP アドレスはホストへの SSH 接続に使えるのか試してみた

DataSync Agent を動かすために KVM を使っています。
Clock Icon2025.01.12

はじめに

KVM の仮想ブリッジの IP アドレスに SSH 接続するとホストマシンへ接続できるのでしょうか。
本記事では、KVM のネットワーク設定と共に SSH 接続の検証結果を共有します。

KVM-Bridge-SSH.png

検証結果

仮想ブリッジ(br0)の IP アドレスでホストマシンに SSH 接続できました。

KVM-Bridge-SSH(2).png

検証環境

項目 内容
ホストOS Ubuntu 24.04
仮想化基盤 KVM
ネットワーク 仮想ブリッジ(br0)を使用
VM DataSync-Agent(稼働中)

KVM の初期設定は以下の記事を参照してください。

https://dev.classmethod.jp/articles/how-to-install-and-configure-kvm-on-ubuntu2404/

ネットワーク構成

本環境のネットワーク構成です。手元の検証機には有線 LAN ポートが 1 つしかなかったため、無線 LAN で代替えします。便宜上、物理 NIC が 2 つある想定で説明します。

  • 物理インターフェース:

    • 無線 LAN(wlp2s0):192.168.20.221/24
    • 有線 LAN(enp3s0):br0 の仮想ブリッジに使用
  • 仮想ネットワーク:

    • 仮想ブリッジ(br0):192.168.20.160/24
    • VM 接続用(vnet0):br0 にブリッジ接続

KVM-Bridge-SSH(1).png

ネットワークインターフェースの状態

IPv4 アドレスの割り当て状況を確認します。ホストマシンへの SSH 接続は、無線 LAN(wlp2s0)を使用しています。br0 は仮想マシン用のネットワークブリッジとして IP アドレスが割り当てられています。

# IPv4アドレスの確認
$ ip -4 a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    inet 127.0.0.1/8 scope host lo
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    inet 192.168.20.221/24 brd 192.168.20.255 scope global dynamic noprefixroute wlp2s0
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    inet 192.168.20.160/24 brd 192.168.20.255 scope global noprefixroute br0

仮想ブリッジの接続状態

仮想ブリッジの設定状態を確認します。

# ブリッジの状態確認
$ sudo brctl show

bridge name	bridge id		STP enabled	interfaces
br0		8000.4ac2659af54c	no		enp3s0
							vnet0

物理 NIC(enp3s0)と VM 用の仮想インターフェース(vnet0)が br0 に接続されています。

# ブリッジのリンク詳細確認
$ bridge link show

2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 100
5: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 2

Netplan の設定

以下が仮想ブリッジ(br0)の設定内容です。

  • 物理 NIC(enp3s0)は DHCP を無効化
  • 仮想ブリッジ(br0)に固定 IP(192.168.20.160/24)を割り当て
  • デフォルトゲートウェイを 192.168.20.1 に設定
  • DNS サーバーとして Cloudflare と Google のパブリック DNS を使用
# Netplanの設定確認
$ sudo cat /etc/netplan/1_kvm.yaml

network:
  version: 2
  ethernets:
    enp3s0:
      dhcp4: false
      dhcp6: false
  bridges:
    br0:
      interfaces: [enp3s0]
      addresses: [192.168.20.160/24]
      routes:
        - to: default
          via: 192.168.20.1
      nameservers:
        addresses: [1.1.1.1, 8.8.8.8]
      parameters:
        stp: false
      dhcp4: false
      dhcp6: false

ルーティングテーブルの確認

システムのルーティング設定を確認します。

  • 物理 NIC(enp3s0)、仮想ブリッジ(br0)ともに同じデフォルトゲートウェイです
# ルーティングテーブルの確認
$ ip route show

default via 192.168.20.1 dev br0 proto static metric 425
default via 192.168.20.1 dev wlp2s0 proto dhcp src 192.168.20.221 metric 600
192.168.20.0/24 dev br0 proto kernel scope link src 192.168.20.160 metric 425
192.168.20.0/24 dev wlp2s0 proto kernel scope link src 192.168.20.221 metric 600

SSH サービスの状態確認

SSH サービスの稼働状態を確認します。無線 LAN(wlp2s0)の IP アドレス宛に SSH 接続しているので当然起動しています。

# SSHサービスのステータス確認
$ sudo systemctl status ssh

● ssh.service - OpenBSD Secure Shell server
     Active: active (running) since Sun 2025-01-12 07:38:36 JST; 10h ago
     Server listening on :: port 22.

仮想ブリッジの IP アドレスへ SSH 接続

ホストマシンに問題なく接続できました。

$ ssh ohmura@192.168.20.160
Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-51-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

Expanded Security Maintenance for Applicationsが無効化されています。

0のアップデートはすぐに適用されます。

8個の追加のセキュリティアップデートが、ESM Appsによって適用できます。
ESM Appsの有効化方法についてはこちらを参照してください: at https://ubuntu.com/esm

DataSync Agent の仮想マシンが起動していることが確認できます。

$ sudo virsh list --all
 Id   Name             State
--------------------------------
 1    DataSync-Agent   running

まとめ

検証の結果、仮想ブリッジ br0(今回は Netplan の YAML の設定ファイルで割り当てた IP アドレス)宛に接続するとホストマシンへ SSH 接続が可能でした。

KVM-Bridge-SSH(2).png

おわりに

めったに設定する機会がないため検証した結果を残しておきました。

参考

第3回 KVMのネットワーク構成 | gihyo.jp

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.